package br.com.toscano.contpedido.view.servlet;

import java.io.IOException;
import java.io.OutputStream;
import java.util.Date;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import br.com.toscano.contpedido.domain.Recebimento;
import br.com.toscano.contpedido.util.Util;
import br.com.toscano.contpedido.view.filter.ConfiguracaoFilter;

public class ExibeRecebimentoServlet  extends HttpServlet {
	private static final long serialVersionUID = 1L;


	public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		Recebimento recebimento = (Recebimento)request.getSession().getAttribute("recebimento");

		Long idRecebimento = null;
		if (request.getParameter("idRecebimento") != null) 
			idRecebimento = new Long (request.getParameter("idRecebimento"));
		
		List<Recebimento> recebimentos = (List<Recebimento>)request.getSession().getAttribute("recebimentos");
		if (recebimento == null ) {
			if (recebimentos != null) {
				for(Recebimento p : recebimentos) {
					if (p.getId().equals(idRecebimento)){
						recebimento = p;
						break;
					}
					
				}
			}
		}
		
		response.setContentType("text/html;UTF-8");
		
		StringBuilder sb = new StringBuilder();
		sb.append("<html>");
		sb.append("	<head><title>Recebimento</title></head>");
		sb.append("	<Body>");
		
		sb.append("		<table  border='0' width='800'>");
		sb.append("				<td style='font-family:" +ConfiguracaoFilter.RELATORIOS_FONT + "' width='50%' >");
		for (int i = 0; i < ConfiguracaoFilter.RELATORIOS_REPETICOES_QUANTIDADE; i++) {
			sb.append("			<tr>");
			gerarRecebimento(request, recebimento, sb);
			sb.append("				</td>");
			sb.append("			</tr>");
			sb.append("			<tr>");
			sb.append("				<td style='font-family:" +ConfiguracaoFilter.RELATORIOS_FONT + "'>&nbsp;</td>");
			sb.append("			</tr>");
			sb.append("			<tr>");
			sb.append("				<td style='font-family:" +ConfiguracaoFilter.RELATORIOS_FONT + "'>&nbsp;</td>");
			sb.append("			</tr>");
			sb.append("			<tr>");
			sb.append("				<td style='font-family:" +ConfiguracaoFilter.RELATORIOS_FONT + "'>&nbsp;</td>");
			sb.append("			</tr>");
		}
		sb.append("		</table>");

		

		adicionarImprimir(sb);
		
		sb.append("</Body>");
		sb.append("</html>");
		
		OutputStream output = response.getOutputStream();
		
		output.write(sb.toString().getBytes());
		
		output.flush();
		
		output.close();
	}


	public static void adicionarImprimir(StringBuilder sb) {
		sb.append("		<BR>");
		sb.append("		<table border='0' width='800' height='40'>");
		sb.append("			<form>");
		sb.append("			  		<tr width='100%'>");
		sb.append("				  		<td style='font-family:" +ConfiguracaoFilter.RELATORIOS_FONT + "'>");
		sb.append("				<div align='CENTER'>");
		sb.append("							<input name=\"button\" type=\"button\" onClick=\"javaScript:this.style.display = 'none';window.print();this.style.display = 'block'\" value=\"Clique para imprimir\" />");
		sb.append("				</div>");
		sb.append("				  		</td>");
		sb.append("					</tr>");
		sb.append("			</form>");
		sb.append("		</table>");
		sb.append("		<BR>");
	}


	private void gerarRecebimento(HttpServletRequest request,
			Recebimento recebimento, StringBuilder sb) {
		sb.append("		<table  border='0' width='600' height='40'>");
		sb.append("			<tr >");
		sb.append("				<td style='font-family:" +ConfiguracaoFilter.RELATORIOS_FONT + "'  valign='top'>");
		sb.append("					<table  border='0' width='100%' height='100%'>");
		sb.append("						<tr>");
		sb.append("							<td style='font-family:" +ConfiguracaoFilter.RELATORIOS_FONT + "' valign='top'>");
		sb.append("								<img width='"+ConfiguracaoFilter.LOGO_WIGHT +"' height='"+ConfiguracaoFilter.LOGO_HEIGTH+"' border='0' src='" + Util.getUrlBase(request)+"/images/"+ConfiguracaoFilter.LOGO +"'>");
		sb.append("							</td");
		sb.append("						</tr>");
		sb.append("						<tr>");
		sb.append("						</tr>");
		sb.append("					</table>");
		sb.append("				</td>");
		sb.append("				<td style='font-family:" +ConfiguracaoFilter.RELATORIOS_FONT + "' align='center' valign='top' ><font size='"+ ConfiguracaoFilter.PAGAMENTO_FONTE_TITULO+"' > <font >" +ConfiguracaoFilter.NOME_PADARIA_RELATORIO + "</font>"
				+ "				<br><font size='"+ ConfiguracaoFilter.PAGAMENTO_FONTE_DADOS_CLIENTE +"'><font >" +ConfiguracaoFilter.NOME_PADARIA_RUA + "</font> "
				+ "				<br><font size='"+ ConfiguracaoFilter.PAGAMENTO_FONTE_DADOS_CLIENTE+"'><font >" +ConfiguracaoFilter.NOME_PADARIA_CNPJ + "</font> "
				+ "				<br><font size='"+ ConfiguracaoFilter.PAGAMENTO_FONTE_DADOS_CLIENTE+"'><font >" +ConfiguracaoFilter.NOME_PADARIA_FONE + "</font> "
				+ "				<br><font size='"+ ConfiguracaoFilter.PAGAMENTO_FONTE_DADOS_CLIENTE+"'><font >" +ConfiguracaoFilter.NOME_PADARIA_EMAIL + "</font> "
				+ "				<br><br><br><font size='"+ ConfiguracaoFilter.PAGAMENTO_FONTE_SUB_TITULO+"'><font  >Recebimento de Pagamento</font> "
				+ "				<br></td>");
		sb.append("			</tr>");
		sb.append("			<tr>");
		sb.append("							<td style='font-family:" +ConfiguracaoFilter.RELATORIOS_FONT + "' width='150'>&nbsp;</td>");
		sb.append("							<td style='font-family:" +ConfiguracaoFilter.RELATORIOS_FONT + "' width='150'><font size='"+ ConfiguracaoFilter.PAGAMENTO_FONTE_DATA+"'  ><strong>Nº Recebimento: </strong></font><font size='"+ ConfiguracaoFilter.PAGAMENTO_FONTE_SUB_TITULO+"'  > " + recebimento.getId() +"</font>&nbsp;&nbsp;&nbsp;<font size='"+ ConfiguracaoFilter.PEDIDO_FONTE_DATA +"'  > <strong> " + Util.dateToString(new Date()) +"</strong></font></td>");
		sb.append("			</tr>");
		sb.append("		</table>");
//		sb.append("		<table  border='0' width='600' height='40'>");
//		sb.append("			<tr>");
//		sb.append("				<td style='font-family:" +ConfiguracaoFilter.RELATORIOS_FONT + "' ALIGN='center'><font size='"+ ConfiguracaoFilter.PAGAMENTO_FONTE_DATA+"' > <font ></font></td>");
//		sb.append("			</tr>");
//		sb.append("		</table>");

		
		//		sb.append("		<table  border='0' width='600' height='40'>");
//		sb.append("			<tr>");
//		sb.append("				<td style='font-family:" +ConfiguracaoFilter.RELATORIOS_FONT + "'  valign='top'>");
//		sb.append("					<table  border='0' width='100%' height='100%'>");
//		sb.append("						<tr>");
//		sb.append("							<td style='font-family:" +ConfiguracaoFilter.RELATORIOS_FONT + "' valign='top'>");
//		sb.append("								<img width='"+ConfiguracaoFilter.LOGO_WIGHT +"' height='"+ConfiguracaoFilter.LOGO_HEIGTH+"' border='0' src='" + Util.getUrlBase(request)+"/images/"+ConfiguracaoFilter.LOGO +"'>");
//		sb.append("							</td");
//		sb.append("						</tr>");
//		sb.append("						<tr>");
//		sb.append("							<td style='font-family:" +ConfiguracaoFilter.RELATORIOS_FONT + "' width='150'><font size='"+ ConfiguracaoFilter.PAGAMENTO_FONTE_DATA+"' ><strong>Nº Recebimento: </strong></font><font size='"+ ConfiguracaoFilter.PAGAMENTO_FONTE_SUB_TITULO+"' > " + recebimento.getId() +"</font></td>");
//		sb.append("						</tr>");
//		sb.append("						<tr>");
//		sb.append("							<td style='font-family:" +ConfiguracaoFilter.RELATORIOS_FONT + "' width='150'><font size='2' ><strong> " + Util.dateToString(new Date()) +"</strong></font></td>");
//		sb.append("						</tr>");
//		
//		sb.append("					</table>");
//		sb.append("				</td>");
//		sb.append("				<td style='font-family:" +ConfiguracaoFilter.RELATORIOS_FONT + "' align='center'><font size='"+ ConfiguracaoFilter.PAGAMENTO_FONTE_TITULO+"' > <font>Panificadora Cruz de Cristo Ltda.</font>"
//				+ "				<br><font size='"+ ConfiguracaoFilter.PAGAMENTO_FONTE_GERAL+"'><font>Av. Manoel Gonçalves da Luz, 648 - Mustardinha - Recife - PE</font> "
//				+ "				<br><font size='"+ ConfiguracaoFilter.PAGAMENTO_FONTE_GERAL+"'><font>CNPJ: 11.529.351/0001-00 - Insc. Est. 0003088-03</font> "
//				+ "				<br><font size='"+ ConfiguracaoFilter.PAGAMENTO_FONTE_GERAL+"'><font>Fone: (81) 3227.1669 - 3228.6176 - 3227.4572</font> "
//				+ "				<br><font size='"+ ConfiguracaoFilter.PAGAMENTO_FONTE_GERAL+"'><font>Email: panificadoracruzdecristo@hotmail.com	</font> </td>");
//		sb.append("			</tr>");
//		sb.append("		</table>");
//		sb.append("		<table  border='0' width='600' height='40'>");
//		sb.append("			<tr>");
//		sb.append("				<td style='font-family:" +ConfiguracaoFilter.RELATORIOS_FONT + "' ALIGN='center'><font size='"+ ConfiguracaoFilter.PAGAMENTO_FONTE_DATA+"' > <font>Recibo</font></td>");
//		sb.append("			</tr>");
//		sb.append("		</table>");
		if (recebimento != null) {
			sb.append("		<table border='0' width='600' cellspacing='0' cellpadding='0'>");
			sb.append("			<tr>");
			sb.append("				<td style='font-family:" +ConfiguracaoFilter.RELATORIOS_FONT + "' width='33%' colspan='2'><font size='"+ ConfiguracaoFilter.PAGAMENTO_FONTE_GERAL+"' ><strong>Cliente</strong>: " + recebimento.getCliente().getNome() +"</font></td>");
			sb.append("			</tr>");
			sb.append("			<tr>");
			sb.append("				<td style='font-family:" +ConfiguracaoFilter.RELATORIOS_FONT + "' width='33%' colspan='2'><font size='"+ ConfiguracaoFilter.PAGAMENTO_FONTE_GERAL+"' ><strong>Data Recebimento</strong>: " + Util.dateToString(recebimento.getDataRecebimento())+"</font></td>");
			sb.append("			</tr>");
			sb.append("			<tr>");
			sb.append("				<td style='font-family:" +ConfiguracaoFilter.RELATORIOS_FONT + "' width='33%' colspan='2'><font size='"+ ConfiguracaoFilter.PAGAMENTO_FONTE_GERAL+"' ><strong>Forma Recebimento</strong>: " + recebimento.getFormaRecebimento().getDescricao()+"</font></td>");
			sb.append("			</tr>");
			sb.append("			<tr>");
			sb.append("				<td style='font-family:" +ConfiguracaoFilter.RELATORIOS_FONT + "' width='33%' colspan='2'><font size='"+ ConfiguracaoFilter.PAGAMENTO_FONTE_GERAL+"' ><strong>Valor</strong>: " + Util.formataValorParaString(recebimento.getValorTotalRecebimento(),2) +"</font></td>");
			sb.append("			</tr>");
			sb.append("		</table>");
		}
		
		boolean exibirResponsavel = false;
		if (ConfiguracaoFilter.PAGAMENTO_EXIBE_RESPONSAVEL == 1) {
			exibirResponsavel = true;
		}
		if (exibirResponsavel) {
			adicionarResponsavel(sb, false);
		}


	}

	public static void adicionarResponsavel(StringBuilder sb, boolean exibirConferente) {
		
		sb.append("		<table border='0' width='600' height='40'>");
		sb.append("			<tr width='100%'>");
		if(exibirConferente) {
			sb.append("				<td style='font-family:" +ConfiguracaoFilter.RELATORIOS_FONT + "' align='left'> __________________________________</td>");
		}
		sb.append("				<td style='font-family:" +ConfiguracaoFilter.RELATORIOS_FONT + "' align='right'> ________,___/___/_____</td>");
		sb.append("			</tr>");
		sb.append("			<tr width='100%'>");
		if(exibirConferente) {
			sb.append("				<td style='font-family:" +ConfiguracaoFilter.RELATORIOS_FONT + "' align='left'>(Visto)Conferente&nbsp;</td>");
		}
		sb.append("				<td style='font-family:" +ConfiguracaoFilter.RELATORIOS_FONT + "' align='right'>&nbsp;</td>");
		sb.append("			</tr>");
		sb.append("			<tr width='100%'>");
		if(exibirConferente) {
			sb.append("				<td style='font-family:" +ConfiguracaoFilter.RELATORIOS_FONT + "' align='left'>__________________________________</td>");
		}
		sb.append("				<td style='font-family:" +ConfiguracaoFilter.RELATORIOS_FONT + "' align='right'>__________________________________</td>");
		sb.append("			</tr>");
		sb.append("			<tr width='100%'>");
		if(exibirConferente) {
			sb.append("				<td style='font-family:" +ConfiguracaoFilter.RELATORIOS_FONT + "' align='left'>(Visto)Transportado&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>");
		}
		sb.append("				<td style='font-family:" +ConfiguracaoFilter.RELATORIOS_FONT + "' align='right'>Respons&aacute;vel&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>");
		sb.append("			</tr>");
		sb.append("		</table>");
		sb.append("		<BR>");
	}
}